package com.archive.manage.domain;

import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.archive.common.annotation.Excel;
import com.archive.common.core.domain.BaseEntity;

/**
 * 学生档案管理对象 tb_stu_archive
 * 
 * @author marioduan
 * @date 2025-04-02
 */
public class StuArchive extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 学号 */
    @Excel(name = "学号")
    private String studentId;

    /** 姓名 */
    @Excel(name = "姓名")
    private String name;

    /** 性别 */
    @Excel(name = "性别")
    private String gender;

    /** 出生日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "出生日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date birthDate;

    /** 身份证号 */
    @Excel(name = "身份证号")
    private String idCard;

    /** 民族 */
    @Excel(name = "民族")
    private String nation;

    /** 政治面貌 */
    @Excel(name = "政治面貌")
    private String politicalStatus;

    /** 籍贯 */
    @Excel(name = "籍贯")
    private String nativePlace;

    /** 照片路径 */
    @Excel(name = "照片路径")
    private String photo;

    /** 入学日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "入学日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date admissionDate;

    /** 预计毕业日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "预计毕业日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date graduationDate;

    /** 学籍状态 */
    @Excel(name = "学籍状态")
    private String studentStatus;

    /** 学生班级信息信息 */
    private List<StuClassInfo> stuClassInfoList;

    /** 学生简历信息信息 */
    private List<Resume> resumeInfoList;

    public List<StuClassInfo> getStuClassInfoList() {
        return stuClassInfoList;
    }

    public void setStuClassInfoList(List<StuClassInfo> stuClassInfoList) {
        this.stuClassInfoList = stuClassInfoList;
    }

    public void setStudentId(String studentId)
    {
        this.studentId = studentId;
    }

    public String getStudentId() 
    {
        return studentId;
    }

    public void setName(String name) 
    {
        this.name = name;
    }

    public String getName() 
    {
        return name;
    }

    public void setGender(String gender) 
    {
        this.gender = gender;
    }

    public String getGender() 
    {
        return gender;
    }

    public void setBirthDate(Date birthDate) 
    {
        this.birthDate = birthDate;
    }

    public Date getBirthDate() 
    {
        return birthDate;
    }

    public void setIdCard(String idCard) 
    {
        this.idCard = idCard;
    }

    public String getIdCard() 
    {
        return idCard;
    }

    public void setNation(String nation) 
    {
        this.nation = nation;
    }

    public String getNation() 
    {
        return nation;
    }

    public void setPoliticalStatus(String politicalStatus) 
    {
        this.politicalStatus = politicalStatus;
    }

    public String getPoliticalStatus() 
    {
        return politicalStatus;
    }

    public void setNativePlace(String nativePlace) 
    {
        this.nativePlace = nativePlace;
    }

    public String getNativePlace() 
    {
        return nativePlace;
    }

    public void setPhoto(String photo) 
    {
        this.photo = photo;
    }

    public String getPhoto() 
    {
        return photo;
    }

    public void setAdmissionDate(Date admissionDate) 
    {
        this.admissionDate = admissionDate;
    }

    public Date getAdmissionDate() 
    {
        return admissionDate;
    }

    public void setGraduationDate(Date graduationDate) 
    {
        this.graduationDate = graduationDate;
    }

    public Date getGraduationDate() 
    {
        return graduationDate;
    }

    public void setStudentStatus(String studentStatus)
    {
        this.studentStatus = studentStatus;
    }

    public String getStudentStatus()
    {
        return studentStatus;
    }

    public List<Resume> getResumeInfoList() {
        return resumeInfoList;
    }

    public void setResumeInfoList(List<Resume> resumeInfoList) {
        this.resumeInfoList = resumeInfoList;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("studentId", getStudentId())
                .append("name", getName())
                .append("gender", getGender())
                .append("birthDate", getBirthDate())
                .append("idCard", getIdCard())
                .append("nation", getNation())
                .append("politicalStatus", getPoliticalStatus())
                .append("nativePlace", getNativePlace())
                .append("photo", getPhoto())
                .append("admissionDate", getAdmissionDate())
                .append("graduationDate", getGraduationDate())
                .append("studentStatus", getStudentStatus())
                .append("createTime", getCreateTime())
                .append("updateTime", getUpdateTime())
                .append("stuClassInfoList", getStuClassInfoList())
                .append("resumeInfoList", getResumeInfoList())
                .toString();
    }
}
